import UIKit
import SnapKit
import SDWebImage
class WelcomeViewController: UIViewController {
    override func loadView() {
        //自定义根视图
        view = UIImageView(image: UIImage(named: "ad_background"))
    }
    override func viewDidLoad() {
        setupUI()
    }
    func setupUI() {
        view.addSubview(iconView)
        view.addSubview(Welcomelabel)
        iconView.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(view.snp_centerX)
            make.bottom.equalTo(view.snp_bottom).offset(-160)
            //约束头像的大小,是像素的一半
            make.size.equalTo(CGSizeMake(90, 90))
        }
        Welcomelabel.snp_makeConstraints { (make) -> Void in
            make.centerX.equalTo(iconView.snp_centerX)
            make.top.equalTo(iconView.snp_bottom).offset(16)
        }
    //最初文案是隐藏的 等到用户头像动画结束时  在显示欢迎文案
        Welcomelabel.alpha = 0
        //设置用户的头像
        iconView.sd_setImageWithURL(UserAccountViewModel.sharedUserAccountViewModel.headImageURL)
        //设置用户头像圆角
        iconView.layer.cornerRadius = 45
        //裁剪视图
        iconView.layer.masksToBounds = true
        
    }
    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)
        StartAnimation()
    }
    
    func StartAnimation() {
        /**
        - parameter delay:                  延迟时间
        - parameter usingSpringWithDamping: 弹簧系数 0 ~ 1 之间 系数越小 弹簧越明显
        - parameter initialSpringVelocity:  加速度  一般设置 usingSpringWithDamping * 10
        - parameter options:                动画的可选项 一般设置  在OC中有多个选项 使用位移枚举 在swift中使用数据来表示   '[]' 表示空数组
       
        */
        let offset = -UIScreen.mainScreen().bounds.height + 160
        //修改约束  意味底部有两条约束
        //snp_updateConstraints 更新一条相同的约束
        //当前阶段只是 '收集' 了约束的变化 并没有重新布局页面
        self.iconView.snp_updateConstraints { (make) -> Void in
            make.bottom.equalTo(self.view.snp_bottom).offset(offset)
        }
     
        UIView.animateWithDuration(1.2, delay: 0, usingSpringWithDamping: 0.98, initialSpringVelocity: 9.8, options: [], animations: { () -> Void in
            
            //设置强制更新页面 提前更新页面  这一段代码必须写到动画闭包中
            self.view.layoutIfNeeded()
            }) { (_) -> Void in
                UIView.animateWithDuration(1, animations: { () -> Void in
                    self.Welcomelabel.alpha = 1
                    }, completion: { (_) -> Void in
                        
                        print("ok")
                        //文案展示结束后切换根视图控制器
                        NSNotificationCenter.defaultCenter().postNotificationName(KChoseRootVC, object: "welcome")
                })
        }
    }
    
    
    //懒加载子视图
    
    //1.用户头像
    private lazy var iconView: UIImageView = UIImageView(image: UIImage(named: "avatar_default_big"))
    //2.欢迎的文案
    private lazy var Welcomelabel: UILabel = UILabel(text: "欢迎回来," + (UserAccountViewModel.sharedUserAccountViewModel.userName ?? ""), fontSize: 19, textColor: UIColor.darkGrayColor())
}
